namespace YM{
    export abstract class ILateUpdateSystem{
        getType(){
            return (<any>this).__proto__.constructor;
        }
        abstract run(o);
    }
    export abstract  class LateUpdateSystem<T> extends ILateUpdateSystem{
        run(o):void{
            this.lateUpdate(o);
        }
        abstract  lateUpdate(self:T):void;
    }
}